import React, { Component } from 'react'
import { Route, Switch, HashRouter, NavLink, Redirect, BrowserRouter } from 'react-router-dom'

import About from './pages/About'
import Home from './pages/Home'

export default class App extends Component {

  render() {
    return (
      <BrowserRouter>
        <div className="container">
          <h1>React Router Demo</h1>
          <hr />
          <div className="col-xs-4">
            <div className="list-group">
              <NavLink to="/about" className="list-group-item">About</NavLink>
              <NavLink to="/home" className="list-group-item">Home</NavLink>

            </div>
          </div>
          <Switch>
            <Route path="/home" component={Home}></Route>
            <Route path="/about" component={About}  exact></Route>
            <Redirect to="/about"></Redirect>
          </Switch>
        </div>
      </BrowserRouter>
    )
  }
}
/* 
  Route： 进行路由匹配的时候采用 逐层模糊匹配， 如果需要精确匹配就需要在 Route 加上 exact 属性
  Switch： 会依次从上到下进行匹配，如果匹配到了就进行显示，后面的直接忽略
  组件的生命周期：
    创建： 请求对应的路由路径，如果不存在就创建，如果存在就复用他
    死亡： 跳转到另一个路由路径（从当前路径离开）
  2种参数
    1. query参数
      路由： /login
      请求： /login?name=tom&pwd=123
    2. params参数
      路由： /login/:name/:pwd
      请求： /login/tom/123

  包装NavLink
*/